package queue

import (
	"context"
	"pusher/internal/svc"
	"time"

	"github.com/zeromicro/go-queue/kq"
	"github.com/zeromicro/go-zero/core/service"
)

func Consumers(kqConf kq.KqConf, ctx context.Context, svcCtx *svc.ServiceContext) []service.Service {
	return []service.Service{
		// commitInterval: 提交给kafka broker间隔时间, 默认是1s
		// queueCapacity: kafka内部队列长度
		// maxWait: 从kafka批量获取数据时, 等待新数据到来的最大时间大小
		// metrics: 上报消费每个消息消费时间, 默认会内部初始化, 一般也不需要指定
		kq.MustNewQueue(
			kqConf,
			NewLogConsumer(ctx, svcCtx),
			kq.WithCommitInterval(time.Second),
		),
	}
}
